<TagAttribute("globals","matg","????","????",3,428)>
Public Class GLOBALS_TAG
Inherits HaloTag
Public Const Extension as String = "globals"
Public Const FourCC as String = "matg"
Public Const ParentFourCC as String = "????"
Public Const GrandParentFourCC as String = "????"
Public Const [Version] as Short = 3
Public Const HeaderLength as Integer = 428

''' <summary>
''' 
''' </summary>
<TagField("", 248, -1)>
Public padding as Byte()

''' <summary>
''' sound_block
''' </summary>
<TagField("sounds", 16, 11)>
Public sounds as List(Of SOUNDS_BLOCK)

''' <summary>
''' camera_block
''' </summary>
<TagField("camera", 16, 11)>
Public camera as List(Of CAMERA_BLOCK)

''' <summary>
''' player_control_block
''' </summary>
<TagField("player control", 128, 11)>
Public player_control as List(Of PLAYER_CONTROL_BLOCK)

''' <summary>
''' difficulty_block
''' </summary>
<TagField("difficulty", 644, 11)>
Public difficulty as List(Of DIFFICULTY_BLOCK)

''' <summary>
''' grenades_block
''' </summary>
<TagField("grenades", 68, 11)>
Public grenades as List(Of GRENADES_BLOCK)

''' <summary>
''' rasterizer_data_block
''' </summary>
<TagField("rasterizer data", 428, 11)>
Public rasterizer_data as List(Of RASTERIZER_DATA_BLOCK)

''' <summary>
''' interface_tag_references
''' </summary>
<TagField("interface bitmaps", 304, 11)>
Public interface_bitmaps as List(Of INTERFACE_BITMAPS_BLOCK)

''' <summary>
''' cheat_weapons_block
''' </summary>
<TagField("weapon list (update _weapon_list enum in game_globals.h)", 16, 11)>
Public weapon_list as List(Of WEAPON_LIST_BLOCK)

''' <summary>
''' cheat_powerups_block
''' </summary>
<TagField("cheat powerups", 16, 11)>
Public cheat_powerups as List(Of CHEAT_POWERUPS_BLOCK)

''' <summary>
''' multiplayer_information_block
''' </summary>
<TagField("multiplayer information", 160, 11)>
Public multiplayer_information as List(Of MULTIPLAYER_INFORMATION_BLOCK)

''' <summary>
''' player_information_block
''' </summary>
<TagField("player information", 244, 11)>
Public player_information as List(Of PLAYER_INFORMATION_BLOCK)

''' <summary>
''' first_person_interface_block
''' </summary>
<TagField("first person interface", 192, 11)>
Public first_person_interface as List(Of FIRST_PERSON_INTERFACE_BLOCK)

''' <summary>
''' falling_damage_block
''' </summary>
<TagField("falling damage", 152, 11)>
Public falling_damage as List(Of FALLING_DAMAGE_BLOCK)

''' <summary>
''' materials_block
''' </summary>
<TagField("materials", 884, 11)>
Public materials as List(Of MATERIALS_BLOCK)

''' <summary>
''' playlist_autogenerate_choice_block
''' </summary>
<TagField("playlist members", 148, 11)>
Public playlist_members as List(Of PLAYLIST_MEMBERS_BLOCK)
Public Class SOUNDS_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("sound", 16, 10)>
Public sound as New TAG_REFERENCE

End Class
Public Class CAMERA_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("default unit camera track", 16, 10)>
Public default_unit_camera_track as New TAG_REFERENCE

End Class
Public Class PLAYER_CONTROL_BLOCK

''' <summary>
''' how much the crosshair slows over enemies
''' </summary>
<TagField("magnetism friction", 1, 0)>
Public magnetism_friction as Single

''' <summary>
''' how much the crosshair sticks to enemies
''' </summary>
<TagField("magnetism adhesion", 1, 0)>
Public magnetism_adhesion as Single

''' <summary>
''' scales magnetism level for inconsequential targets like infection forms
''' </summary>
<TagField("inconsequential target scale", 1, 0)>
Public inconsequential_target_scale as Single

''' <summary>
''' 
''' </summary>
<TagField("", 52, -1)>
Public padding as Byte()

''' <summary>
''' time for a pegged look to reach maximum effect
''' </summary>
<TagField("look acceleration time:seconds", 1, 0)>
Public look_acceleration_time as Single

''' <summary>
''' maximum effect of a pegged look (scales last value in the look function below)
''' </summary>
<TagField("look acceleration scale", 1, 0)>
Public look_acceleration_scale as Single

''' <summary>
''' magnitude of yaw for pegged acceleration to kick in
''' </summary>
<TagField("look peg threshold [0,1]", 1, 0)>
Public look_peg_threshold as Single

''' <summary>
''' 
''' </summary>
<TagField("look default pitch rate:degrees", 1, 0)>
Public look_default_pitch_rate as Single

''' <summary>
''' 
''' </summary>
<TagField("look default yaw rate:degrees", 1, 0)>
Public look_default_yaw_rate as Single

''' <summary>
''' 1 is fast, 0 is none, >1 will probably be really fast
''' </summary>
<TagField("look autolevelling scale", 1, 0)>
Public look_autolevelling_scale as Single

''' <summary>
''' 
''' </summary>
<TagField("", 20, -1)>
Public padding_1 as Byte()

''' <summary>
''' amount of time player needs to hold down ACTION to pick up a new weapon
''' </summary>
<TagField("minimum weapon swap ticks", 1, 23)>
Public minimum_weapon_swap_ticks as Short

''' <summary>
''' amount of time player needs to move and not look up or down for autolevelling to kick in
''' </summary>
<TagField("minimum autolevelling ticks", 1, 23)>
Public minimum_autolevelling_ticks as Short

''' <summary>
''' 0 means the vehicle's up vector is along the ground, 90 means the up vector is pointing straight up:degrees
''' </summary>
<TagField("minimum angle for vehicle flipping", 1, 0)>
Public minimum_angle_for_vehicle_flipping as Single

''' <summary>
''' look_function_block
''' </summary>
<TagField("look function", 4, 11)>
Public look_function as List(Of LOOK_FUNCTION_BLOCK)
Public Class LOOK_FUNCTION_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("scale", 1, 0)>
Public scale as Single

End Class

End Class
Public Class DIFFICULTY_BLOCK

''' <summary>
''' scale values for enemy health and damage settings
''' </summary>
#Region "health"

''' <summary>
''' enemy damage multiplier on easy difficulty
''' </summary>
<TagField("easy enemy damage", 1, 0)>
Public easy_enemy_damage as Single

''' <summary>
''' enemy damage multiplier on normal difficulty
''' </summary>
<TagField("normal enemy damage", 1, 0)>
Public normal_enemy_damage as Single

''' <summary>
''' enemy damage multiplier on hard difficulty
''' </summary>
<TagField("hard enemy damage", 1, 0)>
Public hard_enemy_damage as Single

''' <summary>
''' enemy damage multiplier on impossible difficulty
''' </summary>
<TagField("imposs. enemy damage", 1, 0)>
Public imposs as Single

''' <summary>
''' enemy maximum body vitality scale on easy difficulty
''' </summary>
<TagField("easy enemy vitality", 1, 0)>
Public easy_enemy_vitality as Single

''' <summary>
''' enemy maximum body vitality scale on normal difficulty
''' </summary>
<TagField("normal enemy vitality", 1, 0)>
Public normal_enemy_vitality as Single

''' <summary>
''' enemy maximum body vitality scale on hard difficulty
''' </summary>
<TagField("hard enemy vitality", 1, 0)>
Public hard_enemy_vitality as Single

''' <summary>
''' enemy maximum body vitality scale on impossible difficulty
''' </summary>
<TagField("imposs. enemy vitality", 1, 0)>
Public imposs_1 as Single

''' <summary>
''' enemy maximum shield vitality scale on easy difficulty
''' </summary>
<TagField("easy enemy shield", 1, 0)>
Public easy_enemy_shield as Single

''' <summary>
''' enemy maximum shield vitality scale on normal difficulty
''' </summary>
<TagField("normal enemy shield", 1, 0)>
Public normal_enemy_shield as Single

''' <summary>
''' enemy maximum shield vitality scale on hard difficulty
''' </summary>
<TagField("hard enemy shield", 1, 0)>
Public hard_enemy_shield as Single

''' <summary>
''' enemy maximum shield vitality scale on impossible difficulty
''' </summary>
<TagField("imposs. enemy shield", 1, 0)>
Public imposs_2 as Single

''' <summary>
''' enemy shield recharge scale on easy difficulty
''' </summary>
<TagField("easy enemy recharge", 1, 0)>
Public easy_enemy_recharge as Single

''' <summary>
''' enemy shield recharge scale on normal difficulty
''' </summary>
<TagField("normal enemy recharge", 1, 0)>
Public normal_enemy_recharge as Single

''' <summary>
''' enemy shield recharge scale on hard difficulty
''' </summary>
<TagField("hard enemy recharge", 1, 0)>
Public hard_enemy_recharge as Single

''' <summary>
''' enemy shield recharge scale on impossible difficulty
''' </summary>
<TagField("imposs. enemy recharge", 1, 0)>
Public imposs_3 as Single

''' <summary>
''' friend damage multiplier on easy difficulty
''' </summary>
<TagField("easy friend damage", 1, 0)>
Public easy_friend_damage as Single

''' <summary>
''' friend damage multiplier on normal difficulty
''' </summary>
<TagField("normal friend damage", 1, 0)>
Public normal_friend_damage as Single

''' <summary>
''' friend damage multiplier on hard difficulty
''' </summary>
<TagField("hard friend damage", 1, 0)>
Public hard_friend_damage as Single

''' <summary>
''' friend damage multiplier on impossible difficulty
''' </summary>
<TagField("imposs. friend damage", 1, 0)>
Public imposs_4 as Single

''' <summary>
''' friend maximum body vitality scale on easy difficulty
''' </summary>
<TagField("easy friend vitality", 1, 0)>
Public easy_friend_vitality as Single

''' <summary>
''' friend maximum body vitality scale on normal difficulty
''' </summary>
<TagField("normal friend vitality", 1, 0)>
Public normal_friend_vitality as Single

''' <summary>
''' friend maximum body vitality scale on hard difficulty
''' </summary>
<TagField("hard friend vitality", 1, 0)>
Public hard_friend_vitality as Single

''' <summary>
''' friend maximum body vitality scale on impossible difficulty
''' </summary>
<TagField("imposs. friend vitality", 1, 0)>
Public imposs_5 as Single

''' <summary>
''' friend maximum shield vitality scale on easy difficulty
''' </summary>
<TagField("easy friend shield", 1, 0)>
Public easy_friend_shield as Single

''' <summary>
''' friend maximum shield vitality scale on normal difficulty
''' </summary>
<TagField("normal friend shield", 1, 0)>
Public normal_friend_shield as Single

''' <summary>
''' friend maximum shield vitality scale on hard difficulty
''' </summary>
<TagField("hard friend shield", 1, 0)>
Public hard_friend_shield as Single

''' <summary>
''' friend maximum shield vitality scale on impossible difficulty
''' </summary>
<TagField("imposs. friend shield", 1, 0)>
Public imposs_6 as Single

''' <summary>
''' friend shield recharge scale on easy difficulty
''' </summary>
<TagField("easy friend recharge", 1, 0)>
Public easy_friend_recharge as Single

''' <summary>
''' friend shield recharge scale on normal difficulty
''' </summary>
<TagField("normal friend recharge", 1, 0)>
Public normal_friend_recharge as Single

''' <summary>
''' friend shield recharge scale on hard difficulty
''' </summary>
<TagField("hard friend recharge", 1, 0)>
Public hard_friend_recharge as Single

''' <summary>
''' friend shield recharge scale on impossible difficulty
''' </summary>
<TagField("imposs. friend recharge", 1, 0)>
Public imposs_7 as Single

''' <summary>
''' toughness of infection forms (may be negative) on easy difficulty
''' </summary>
<TagField("easy infection forms", 1, 0)>
Public easy_infection_forms as Single

''' <summary>
''' toughness of infection forms (may be negative) on normal difficulty
''' </summary>
<TagField("normal infection forms", 1, 0)>
Public normal_infection_forms as Single

''' <summary>
''' toughness of infection forms (may be negative) on hard difficulty
''' </summary>
<TagField("hard infection forms", 1, 0)>
Public hard_infection_forms as Single

''' <summary>
''' toughness of infection forms (may be negative) on impossible difficulty
''' </summary>
<TagField("imposs. infection forms", 1, 0)>
Public imposs_8 as Single

''' <summary>
''' 
''' </summary>
<TagField("", 16, -1)>
Public padding as Byte()

''' <summary>
''' difficulty-affecting values for enemy ranged combat settings
''' </summary>
#End Region
#Region "ranged fire"

''' <summary>
''' enemy rate of fire scale on easy difficulty
''' </summary>
<TagField("easy rate of fire", 1, 0)>
Public easy_rate_of_fire as Single

''' <summary>
''' enemy rate of fire scale on normal difficulty
''' </summary>
<TagField("normal rate of fire", 1, 0)>
Public normal_rate_of_fire as Single

''' <summary>
''' enemy rate of fire scale on hard difficulty
''' </summary>
<TagField("hard rate of fire", 1, 0)>
Public hard_rate_of_fire as Single

''' <summary>
''' enemy rate of fire scale on impossible difficulty
''' </summary>
<TagField("imposs. rate of fire", 1, 0)>
Public imposs_9 as Single

''' <summary>
''' enemy projectile error scale, as a fraction of their base firing error. on easy difficulty
''' </summary>
<TagField("easy projectile error", 1, 0)>
Public easy_projectile_error as Single

''' <summary>
''' enemy projectile error scale, as a fraction of their base firing error. on normal difficulty
''' </summary>
<TagField("normal projectile error", 1, 0)>
Public normal_projectile_error as Single

''' <summary>
''' enemy projectile error scale, as a fraction of their base firing error. on hard difficulty
''' </summary>
<TagField("hard projectile error", 1, 0)>
Public hard_projectile_error as Single

''' <summary>
''' enemy projectile error scale, as a fraction of their base firing error. on impossible difficulty
''' </summary>
<TagField("imposs. projectile error", 1, 0)>
Public imposs_10 as Single

''' <summary>
''' enemy burst error scale; reduces intra-burst shot distance. on easy difficulty
''' </summary>
<TagField("easy burst error", 1, 0)>
Public easy_burst_error as Single

''' <summary>
''' enemy burst error scale; reduces intra-burst shot distance. on normal difficulty
''' </summary>
<TagField("normal burst error", 1, 0)>
Public normal_burst_error as Single

''' <summary>
''' enemy burst error scale; reduces intra-burst shot distance. on hard difficulty
''' </summary>
<TagField("hard burst error", 1, 0)>
Public hard_burst_error as Single

''' <summary>
''' enemy burst error scale; reduces intra-burst shot distance. on impossible difficulty
''' </summary>
<TagField("imposs. burst error", 1, 0)>
Public imposs_11 as Single

''' <summary>
''' enemy new-target delay scale factor. on easy difficulty
''' </summary>
<TagField("easy new target delay", 1, 0)>
Public easy_new_target_delay as Single

''' <summary>
''' enemy new-target delay scale factor. on normal difficulty
''' </summary>
<TagField("normal new target delay", 1, 0)>
Public normal_new_target_delay as Single

''' <summary>
''' enemy new-target delay scale factor. on hard difficulty
''' </summary>
<TagField("hard new target delay", 1, 0)>
Public hard_new_target_delay as Single

''' <summary>
''' enemy new-target delay scale factor. on impossible difficulty
''' </summary>
<TagField("imposs. new target delay", 1, 0)>
Public imposs_12 as Single

''' <summary>
''' delay time between bursts scale factor for enemies. on easy difficulty
''' </summary>
<TagField("easy burst separation", 1, 0)>
Public easy_burst_separation as Single

''' <summary>
''' delay time between bursts scale factor for enemies. on normal difficulty
''' </summary>
<TagField("normal burst separation", 1, 0)>
Public normal_burst_separation as Single

''' <summary>
''' delay time between bursts scale factor for enemies. on hard difficulty
''' </summary>
<TagField("hard burst separation", 1, 0)>
Public hard_burst_separation as Single

''' <summary>
''' delay time between bursts scale factor for enemies. on impossible difficulty
''' </summary>
<TagField("imposs. burst separation", 1, 0)>
Public imposs_13 as Single

''' <summary>
''' additional target tracking fraction for enemies. on easy difficulty
''' </summary>
<TagField("easy target tracking", 1, 0)>
Public easy_target_tracking as Single

''' <summary>
''' additional target tracking fraction for enemies. on normal difficulty
''' </summary>
<TagField("normal target tracking", 1, 0)>
Public normal_target_tracking as Single

''' <summary>
''' additional target tracking fraction for enemies. on hard difficulty
''' </summary>
<TagField("hard target tracking", 1, 0)>
Public hard_target_tracking as Single

''' <summary>
''' additional target tracking fraction for enemies. on impossible difficulty
''' </summary>
<TagField("imposs. target tracking", 1, 0)>
Public imposs_14 as Single

''' <summary>
''' additional target leading fraction for enemies. on easy difficulty
''' </summary>
<TagField("easy target leading", 1, 0)>
Public easy_target_leading as Single

''' <summary>
''' additional target leading fraction for enemies. on normal difficulty
''' </summary>
<TagField("normal target leading", 1, 0)>
Public normal_target_leading as Single

''' <summary>
''' additional target leading fraction for enemies. on hard difficulty
''' </summary>
<TagField("hard target leading", 1, 0)>
Public hard_target_leading as Single

''' <summary>
''' additional target leading fraction for enemies. on impossible difficulty
''' </summary>
<TagField("imposs. target leading", 1, 0)>
Public imposs_15 as Single

''' <summary>
''' overcharge chance scale factor for enemies. on easy difficulty
''' </summary>
<TagField("easy overcharge chance", 1, 0)>
Public easy_overcharge_chance as Single

''' <summary>
''' overcharge chance scale factor for enemies. on normal difficulty
''' </summary>
<TagField("normal overcharge chance", 1, 0)>
Public normal_overcharge_chance as Single

''' <summary>
''' overcharge chance scale factor for enemies. on hard difficulty
''' </summary>
<TagField("hard overcharge chance", 1, 0)>
Public hard_overcharge_chance as Single

''' <summary>
''' overcharge chance scale factor for enemies. on impossible difficulty
''' </summary>
<TagField("imposs. overcharge chance", 1, 0)>
Public imposs_16 as Single

''' <summary>
''' delay between special-fire shots (overcharge, banshee bombs) scale factor for enemies. on easy difficulty
''' </summary>
<TagField("easy special fire delay", 1, 0)>
Public easy_special_fire_delay as Single

''' <summary>
''' delay between special-fire shots (overcharge, banshee bombs) scale factor for enemies. on normal difficulty
''' </summary>
<TagField("normal special fire delay", 1, 0)>
Public normal_special_fire_delay as Single

''' <summary>
''' delay between special-fire shots (overcharge, banshee bombs) scale factor for enemies. on hard difficulty
''' </summary>
<TagField("hard special fire delay", 1, 0)>
Public hard_special_fire_delay as Single

''' <summary>
''' delay between special-fire shots (overcharge, banshee bombs) scale factor for enemies. on impossible difficulty
''' </summary>
<TagField("imposs. special fire delay", 1, 0)>
Public imposs_17 as Single

''' <summary>
''' guidance velocity scale factor for all projectiles targeted on a player. on easy difficulty
''' </summary>
<TagField("easy guidance vs player", 1, 0)>
Public easy_guidance_vs_player as Single

''' <summary>
''' guidance velocity scale factor for all projectiles targeted on a player. on normal difficulty
''' </summary>
<TagField("normal guidance vs player", 1, 0)>
Public normal_guidance_vs_player as Single

''' <summary>
''' guidance velocity scale factor for all projectiles targeted on a player. on hard difficulty
''' </summary>
<TagField("hard guidance vs player", 1, 0)>
Public hard_guidance_vs_player as Single

''' <summary>
''' guidance velocity scale factor for all projectiles targeted on a player. on impossible difficulty
''' </summary>
<TagField("imposs. guidance vs player", 1, 0)>
Public imposs_18 as Single

''' <summary>
''' delay period added to all melee attacks, even when berserk. on easy difficulty
''' </summary>
<TagField("easy melee delay base", 1, 0)>
Public easy_melee_delay_base as Single

''' <summary>
''' delay period added to all melee attacks, even when berserk. on normal difficulty
''' </summary>
<TagField("normal melee delay base", 1, 0)>
Public normal_melee_delay_base as Single

''' <summary>
''' delay period added to all melee attacks, even when berserk. on hard difficulty
''' </summary>
<TagField("hard melee delay base", 1, 0)>
Public hard_melee_delay_base as Single

''' <summary>
''' delay period added to all melee attacks, even when berserk. on impossible difficulty
''' </summary>
<TagField("imposs. melee delay base", 1, 0)>
Public imposs_19 as Single

''' <summary>
''' multiplier for all existing non-berserk melee delay times. on easy difficulty
''' </summary>
<TagField("easy melee delay scale", 1, 0)>
Public easy_melee_delay_scale as Single

''' <summary>
''' multiplier for all existing non-berserk melee delay times. on normal difficulty
''' </summary>
<TagField("normal melee delay scale", 1, 0)>
Public normal_melee_delay_scale as Single

''' <summary>
''' multiplier for all existing non-berserk melee delay times. on hard difficulty
''' </summary>
<TagField("hard melee delay scale", 1, 0)>
Public hard_melee_delay_scale as Single

''' <summary>
''' multiplier for all existing non-berserk melee delay times. on impossible difficulty
''' </summary>
<TagField("imposs. melee delay scale", 1, 0)>
Public imposs_20 as Single

''' <summary>
''' 
''' </summary>
<TagField("", 16, -1)>
Public padding_1 as Byte()

''' <summary>
''' difficulty-affecting values for enemy grenade behavior
''' </summary>
#End Region
#Region "grenades"

''' <summary>
''' scale factor affecting the desicions to throw a grenade. on easy difficulty
''' </summary>
<TagField("easy grenade chance scale", 1, 0)>
Public easy_grenade_chance_scale as Single

''' <summary>
''' scale factor affecting the desicions to throw a grenade. on normal difficulty
''' </summary>
<TagField("normal grenade chance scale", 1, 0)>
Public normal_grenade_chance_scale as Single

''' <summary>
''' scale factor affecting the desicions to throw a grenade. on hard difficulty
''' </summary>
<TagField("hard grenade chance scale", 1, 0)>
Public hard_grenade_chance_scale as Single

''' <summary>
''' scale factor affecting the desicions to throw a grenade. on impossible difficulty
''' </summary>
<TagField("imposs. grenade chance scale", 1, 0)>
Public imposs_21 as Single

''' <summary>
''' scale factor affecting the delay period between grenades thrown from the same encounter (lower is more often). on easy difficulty
''' </summary>
<TagField("easy grenade timer scale", 1, 0)>
Public easy_grenade_timer_scale as Single

''' <summary>
''' scale factor affecting the delay period between grenades thrown from the same encounter (lower is more often). on normal difficulty
''' </summary>
<TagField("normal grenade timer scale", 1, 0)>
Public normal_grenade_timer_scale as Single

''' <summary>
''' scale factor affecting the delay period between grenades thrown from the same encounter (lower is more often). on hard difficulty
''' </summary>
<TagField("hard grenade timer scale", 1, 0)>
Public hard_grenade_timer_scale as Single

''' <summary>
''' scale factor affecting the delay period between grenades thrown from the same encounter (lower is more often). on impossible difficulty
''' </summary>
<TagField("imposs. grenade timer scale", 1, 0)>
Public imposs_22 as Single

''' <summary>
''' 
''' </summary>
<TagField("", 16, -1)>
Public padding_2 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("", 16, -1)>
Public padding_3 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("", 16, -1)>
Public padding_4 as Byte()

''' <summary>
''' difficulty-affecting values for enemy placement
''' </summary>
#End Region
#Region "placement"

''' <summary>
''' fraction of actors upgraded to their major variant. on easy difficulty
''' </summary>
<TagField("easy major upgrade (normal)", 1, 0)>
Public easy_major_upgrade as Single

''' <summary>
''' fraction of actors upgraded to their major variant. on normal difficulty
''' </summary>
<TagField("normal major upgrade (normal)", 1, 0)>
Public normal_major_upgrade as Single

''' <summary>
''' fraction of actors upgraded to their major variant. on hard difficulty
''' </summary>
<TagField("hard major upgrade (normal)", 1, 0)>
Public hard_major_upgrade as Single

''' <summary>
''' fraction of actors upgraded to their major variant. on impossible difficulty
''' </summary>
<TagField("imposs. major upgrade (normal)", 1, 0)>
Public imposs_23 as Single

''' <summary>
''' fraction of actors upgraded to their major variant when mix = normal. on easy difficulty
''' </summary>
<TagField("easy major upgrade (few)", 1, 0)>
Public easy_major_upgrade_1 as Single

''' <summary>
''' fraction of actors upgraded to their major variant when mix = normal. on normal difficulty
''' </summary>
<TagField("normal major upgrade (few)", 1, 0)>
Public normal_major_upgrade_1 as Single

''' <summary>
''' fraction of actors upgraded to their major variant when mix = normal. on hard difficulty
''' </summary>
<TagField("hard major upgrade (few)", 1, 0)>
Public hard_major_upgrade_1 as Single

''' <summary>
''' fraction of actors upgraded to their major variant when mix = normal. on impossible difficulty
''' </summary>
<TagField("imposs. major upgrade (few)", 1, 0)>
Public imposs_24 as Single

''' <summary>
''' fraction of actors upgraded to their major variant when mix = many. on easy difficulty
''' </summary>
<TagField("easy major upgrade (many)", 1, 0)>
Public easy_major_upgrade_2 as Single

''' <summary>
''' fraction of actors upgraded to their major variant when mix = many. on normal difficulty
''' </summary>
<TagField("normal major upgrade (many)", 1, 0)>
Public normal_major_upgrade_2 as Single

''' <summary>
''' fraction of actors upgraded to their major variant when mix = many. on hard difficulty
''' </summary>
<TagField("hard major upgrade (many)", 1, 0)>
Public hard_major_upgrade_2 as Single

''' <summary>
''' fraction of actors upgraded to their major variant when mix = many. on impossible difficulty
''' </summary>
<TagField("imposs. major upgrade (many)", 1, 0)>
Public imposs_25 as Single

''' <summary>
''' 
''' </summary>
<TagField("", 16, -1)>
Public padding_5 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("", 16, -1)>
Public padding_6 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("", 16, -1)>
Public padding_7 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("", 16, -1)>
Public padding_8 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("", 84, -1)>
Public padding_9 as Byte()
#End Region

End Class
Public Class GRENADES_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("maximum count", 1, 23)>
Public maximum_count as Short

''' <summary>
''' 
''' </summary>
<TagField("mp spawn default", 1, 23)>
Public mp_spawn_default as Short

''' <summary>
''' 
''' </summary>
<TagField("throwing effect", 16, 10)>
Public throwing_effect as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("hud interface", 16, 10)>
Public hud_interface as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("equipment", 16, 10)>
Public equipment as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("projectile", 16, 10)>
Public projectile as New TAG_REFERENCE

End Class
Public Class RASTERIZER_DATA_BLOCK

''' <summary>
''' Used internally by the rasterizer. (Do not change unless you know what you're doing!)
''' </summary>
#Region "function textures"

''' <summary>
''' 
''' </summary>
<TagField("distance attenuation", 16, 10)>
Public distance_attenuation as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("vector normalization", 16, 10)>
Public vector_normalization as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("atmospheric fog density", 16, 10)>
Public atmospheric_fog_density as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("planar fog density", 16, 10)>
Public planar_fog_density as New TAG_REFERENCE

''' <summary>
''' used for shadows
''' </summary>
<TagField("linear corner fade", 16, 10)>
Public linear_corner_fade as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("active camouflage distortion", 16, 10)>
Public active_camouflage_distortion as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("glow", 16, 10)>
Public glow as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("", 60, -1)>
Public padding as Byte()

''' <summary>
''' Used internally by the rasterizer - additive, multiplicative, detail, vector. (Do not change ever, period.)
''' </summary>
#End Region
#Region "default textures"

''' <summary>
''' 
''' </summary>
<TagField("default 2D", 16, 10)>
Public default_2d as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("default 3D", 16, 10)>
Public default_3d as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("default cube map", 16, 10)>
Public default_cube_map as New TAG_REFERENCE

''' <summary>
''' Used internally by the rasterizer. (Used by Bernie's experimental shaders.)
''' </summary>
#End Region
#Region "experimental textures"

''' <summary>
''' 
''' </summary>
<TagField("test 0", 16, 10)>
Public test_0 as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("test 1", 16, 10)>
Public test_1 as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("test 2", 16, 10)>
Public test_2 as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("test 3", 16, 10)>
Public test_3 as New TAG_REFERENCE

''' <summary>
''' Used in cinematics.
''' </summary>
#End Region
#Region "video effect textures"

''' <summary>
''' 
''' </summary>
<TagField("video scanline map", 16, 10)>
Public video_scanline_map as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("video noise map", 16, 10)>
Public video_noise_map as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("", 52, -1)>
Public padding_1 as Byte()

''' <summary>
''' 
''' </summary>
#End Region
#Region "active camouflage"

''' <summary>
''' 
''' </summary>
<TagField("flags", 1, 19)>
Public flags as Short

''' <summary>
''' 
''' </summary>
<TagField("", 2, -1)>
Public padding_2 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("refraction amount:pixels", 1, 0)>
Public refraction_amount as Single

''' <summary>
''' 
''' </summary>
<TagField("distance falloff", 1, 0)>
Public distance_falloff as Single

''' <summary>
''' 
''' </summary>
<TagField("tint color", 3, 2)>
Public tint_color as Single()

''' <summary>
''' 
''' </summary>
<TagField("hyper-stealth refraction:pixels", 1, 0)>
Public hyper as Single

''' <summary>
''' 
''' </summary>
<TagField("hyper-stealth distance falloff", 1, 0)>
Public hyper_1 as Single

''' <summary>
''' 
''' </summary>
<TagField("hyper-stealth tint color", 3, 2)>
Public hyper_2 as Single()

''' <summary>
''' The PC can't use 3D textures, so we use this instead.
''' </summary>
#End Region
#Region "PC textures"

''' <summary>
''' the pc can't use 3d textures, so we use this instead
''' </summary>
<TagField("distance attenuation 2D", 16, 10)>
Public distance_attenuation_2d as New TAG_REFERENCE
#End Region

End Class
Public Class INTERFACE_BITMAPS_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("font system", 16, 10)>
Public font_system as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("font terminal", 16, 10)>
Public font_terminal as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("screen color table", 16, 10)>
Public screen_color_table as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("hud color table", 16, 10)>
Public hud_color_table as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("editor color table", 16, 10)>
Public editor_color_table as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("dialog color table", 16, 10)>
Public dialog_color_table as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("hud globals", 16, 10)>
Public hud_globals as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("motion sensor sweep bitmap", 16, 10)>
Public motion_sensor_sweep_bitmap as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("motion sensor sweep bitmap mask", 16, 10)>
Public motion_sensor_sweep_bitmap_mask as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("multiplayer hud bitmap", 16, 10)>
Public multiplayer_hud_bitmap as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("localization", 16, 10)>
Public localization as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("hud digits definition", 16, 10)>
Public hud_digits_definition as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("motion sensor blip bitmap", 16, 10)>
Public motion_sensor_blip_bitmap as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("interface goo map1", 16, 10)>
Public interface_goo_map1 as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("interface goo map2", 16, 10)>
Public interface_goo_map2 as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("interface goo map3", 16, 10)>
Public interface_goo_map3 as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("", 48, -1)>
Public padding as Byte()

End Class
Public Class WEAPON_LIST_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("weapon^", 16, 10)>
Public weapon as New TAG_REFERENCE

End Class
Public Class CHEAT_POWERUPS_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("powerup^", 16, 10)>
Public powerup as New TAG_REFERENCE

End Class
Public Class MULTIPLAYER_INFORMATION_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("flag", 16, 10)>
Public flag as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("unit", 16, 10)>
Public unit as New TAG_REFERENCE

''' <summary>
''' vehicles_block
''' </summary>
<TagField("vehicles", 16, 11)>
Public vehicles as List(Of VEHICLES_BLOCK)

''' <summary>
''' 
''' </summary>
<TagField("hill shader", 16, 10)>
Public hill_shader as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("flag shader", 16, 10)>
Public flag_shader as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("ball", 16, 10)>
Public ball as New TAG_REFERENCE

''' <summary>
''' sounds_block
''' </summary>
<TagField("sounds", 16, 11)>
Public sounds as List(Of SOUNDS_BLOCK)

''' <summary>
''' 
''' </summary>
<TagField("", 56, -1)>
Public padding as Byte()
Public Class VEHICLES_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("vehicle^", 16, 10)>
Public vehicle as New TAG_REFERENCE

End Class
Public Class SOUNDS_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("sound^", 16, 10)>
Public sound as New TAG_REFERENCE

End Class

End Class
Public Class PLAYER_INFORMATION_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("unit", 16, 10)>
Public unit as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("", 28, -1)>
Public padding as Byte()

''' <summary>
''' 
''' </summary>
<TagField("walking speed:world units per second", 1, 0)>
Public walking_speed as Single

''' <summary>
''' 
''' </summary>
<TagField("double speed multiplier:[1.0,+inf]", 1, 0)>
Public double_speed_multiplier as Single

''' <summary>
''' 
''' </summary>
<TagField("run forward:world units per second", 1, 0)>
Public run_forward as Single

''' <summary>
''' 
''' </summary>
<TagField("run backward:world units per second", 1, 0)>
Public run_backward as Single

''' <summary>
''' 
''' </summary>
<TagField("run sideways:world units per second", 1, 0)>
Public run_sideways as Single

''' <summary>
''' 
''' </summary>
<TagField("run acceleration:world units per second squared", 1, 0)>
Public run_acceleration as Single

''' <summary>
''' 
''' </summary>
<TagField("sneak forward:world units per second", 1, 0)>
Public sneak_forward as Single

''' <summary>
''' 
''' </summary>
<TagField("sneak backward:world units per second", 1, 0)>
Public sneak_backward as Single

''' <summary>
''' 
''' </summary>
<TagField("sneak sideways:world units per second", 1, 0)>
Public sneak_sideways as Single

''' <summary>
''' 
''' </summary>
<TagField("sneak acceleration:world units per second squared", 1, 0)>
Public sneak_acceleration as Single

''' <summary>
''' 
''' </summary>
<TagField("airborne acceleration:world units per second squared", 1, 0)>
Public airborne_acceleration as Single

''' <summary>
''' 
''' </summary>
<TagField("speed multiplier: multiplayer only", 1, 0)>
Public speed_multiplier as Single

''' <summary>
''' 
''' </summary>
<TagField("", 12, -1)>
Public padding_1 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("grenade origin", 3, 2)>
Public grenade_origin as Single()

''' <summary>
''' 
''' </summary>
<TagField("", 12, -1)>
Public padding_2 as Byte()

''' <summary>
''' 1.0 prevents moving while stunned
''' </summary>
<TagField("stun movement penalty:[0,1]", 1, 0)>
Public stun_movement_penalty as Single

''' <summary>
''' 1.0 prevents turning while stunned
''' </summary>
<TagField("stun turning penalty:[0,1]", 1, 0)>
Public stun_turning_penalty as Single

''' <summary>
''' 1.0 prevents jumping while stunned
''' </summary>
<TagField("stun jumping penalty:[0,1]", 1, 0)>
Public stun_jumping_penalty as Single

''' <summary>
''' all stunning damage will last for at least this long
''' </summary>
<TagField("minimum stun time:seconds", 1, 0)>
Public minimum_stun_time as Single

''' <summary>
''' no stunning damage will last for longer than this
''' </summary>
<TagField("maximum stun time:seconds", 1, 0)>
Public maximum_stun_time as Single

''' <summary>
''' 
''' </summary>
<TagField("", 8, -1)>
Public padding_3 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("first person idle time:seconds", 2, 1)>
Public first_person_idle_time as Single()

''' <summary>
''' 
''' </summary>
<TagField("first person skip fraction:[0,1]", 1, 0)>
Public first_person_skip_fraction as Single

''' <summary>
''' 
''' </summary>
<TagField("", 16, -1)>
Public padding_4 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("coop respawn effect", 16, 10)>
Public coop_respawn_effect as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("", 44, -1)>
Public padding_5 as Byte()

End Class
Public Class FIRST_PERSON_INTERFACE_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("first person hands", 16, 10)>
Public first_person_hands as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("base bitmap", 16, 10)>
Public base_bitmap as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("shield meter", 16, 10)>
Public shield_meter as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("shield meter origin", 2, 24)>
Public shield_meter_origin as Short()

''' <summary>
''' 
''' </summary>
<TagField("body meter", 16, 10)>
Public body_meter as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("body meter origin", 2, 24)>
Public body_meter_origin as Short()

''' <summary>
''' 
''' </summary>
<TagField("night-vision OFF->ON effect", 16, 10)>
Public night as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("night-vision ON->OFF effect", 16, 10)>
Public night_1 as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("", 88, -1)>
Public padding as Byte()

End Class
Public Class FALLING_DAMAGE_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("", 8, -1)>
Public padding as Byte()

''' <summary>
''' 
''' </summary>
<TagField("harmful falling distance:world units", 2, 1)>
Public harmful_falling_distance as Single()

''' <summary>
''' 
''' </summary>
<TagField("falling damage", 16, 10)>
Public falling_damage as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("", 8, -1)>
Public padding_1 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("maximum falling distance:world units", 1, 0)>
Public maximum_falling_distance as Single

''' <summary>
''' 
''' </summary>
<TagField("distance damage", 16, 10)>
Public distance_damage as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("vehicle environemtn collision damage effect", 16, 10)>
Public vehicle_environemtn_collision_damage_effect as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("vehicle killed unit damage effect", 16, 10)>
Public vehicle_killed_unit_damage_effect as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("vehicle collision damage", 16, 10)>
Public vehicle_collision_damage as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("flaming death damage", 16, 10)>
Public flaming_death_damage as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("", 28, -1)>
Public padding_2 as Byte()

End Class
Public Class MATERIALS_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("", 100, -1)>
Public padding as Byte()

''' <summary>
''' 
''' </summary>
<TagField("", 48, -1)>
Public padding_1 as Byte()

''' <summary>
''' the following fields modify the way a vehicle drives over terrain of this material type.
''' </summary>
#Region "vehicle terrain parameters"

''' <summary>
''' fraction of original velocity parallel to the ground after one tick
''' </summary>
<TagField("ground friction scale", 1, 0)>
Public ground_friction_scale as Single

''' <summary>
''' cosine of angle at which friction falls off
''' </summary>
<TagField("ground friction normal k1 scale", 1, 0)>
Public ground_friction_normal_k1_scale as Single

''' <summary>
''' cosine of angle at which friction is zero
''' </summary>
<TagField("ground friction normal k0 scale", 1, 0)>
Public ground_friction_normal_k0_scale as Single

''' <summary>
''' depth a point mass rests in the ground
''' </summary>
<TagField("ground depth scale", 1, 0)>
Public ground_depth_scale as Single

''' <summary>
''' fraction of original velocity perpendicular to the ground after one tick
''' </summary>
<TagField("ground damp fraction scale", 1, 0)>
Public ground_damp_fraction_scale as Single

''' <summary>
''' 
''' </summary>
<TagField("", 76, -1)>
Public padding_2 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("", 480, -1)>
Public padding_3 as Byte()

''' <summary>
''' 
''' </summary>
#End Region
#Region "breakable surface parameters"

''' <summary>
''' 
''' </summary>
<TagField("maximum vitality", 1, 0)>
Public maximum_vitality as Single

''' <summary>
''' 
''' </summary>
<TagField("", 8, -1)>
Public padding_4 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("", 4, -1)>
Public padding_5 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("effect", 16, 10)>
Public effect as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("sound", 16, 10)>
Public sound as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("", 24, -1)>
Public padding_6 as Byte()

''' <summary>
''' breakable_surface_particle_effect_block
''' </summary>
<TagField("particle effects", 128, 11)>
Public particle_effects as List(Of PARTICLE_EFFECTS_BLOCK)

''' <summary>
''' 
''' </summary>
<TagField("", 60, -1)>
Public padding_7 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("melee hit sound", 16, 10)>
Public melee_hit_sound as New TAG_REFERENCE
#End Region
Public Class PARTICLE_EFFECTS_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("particle type^", 16, 10)>
Public particle_type as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("flags", 1, 20)>
Public flags as Integer

''' <summary>
''' 
''' </summary>
<TagField("density:world units", 1, 0)>
Public density as Single

''' <summary>
''' scales initial velocity
''' </summary>
<TagField("velocity scale", 2, 1)>
Public velocity_scale as Single()

''' <summary>
''' 
''' </summary>
<TagField("", 4, -1)>
Public padding as Byte()

''' <summary>
''' 
''' </summary>
<TagField("angular velocity:degrees per second", 2, 1)>
Public angular_velocity as Single()

''' <summary>
''' 
''' </summary>
<TagField("", 8, -1)>
Public padding_1 as Byte()

''' <summary>
''' particle radius
''' </summary>
<TagField("radius:world units", 2, 1)>
Public radius as Single()

''' <summary>
''' 
''' </summary>
<TagField("", 8, -1)>
Public padding_2 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("tint lower bound", 4, 3)>
Public tint_lower_bound as Single()

''' <summary>
''' 
''' </summary>
<TagField("tint upper bound", 4, 3)>
Public tint_upper_bound as Single()

''' <summary>
''' 
''' </summary>
<TagField("", 28, -1)>
Public padding_3 as Byte()

End Class

End Class
Public Class PLAYLIST_MEMBERS_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("map name", 32, 8)>
Public map_name as String

''' <summary>
''' 
''' </summary>
<TagField("game variant", 32, 8)>
Public game_variant as String

''' <summary>
''' 
''' </summary>
<TagField("minimum experience", 1, 4)>
Public minimum_experience as Integer

''' <summary>
''' 
''' </summary>
<TagField("maximum experience", 1, 4)>
Public maximum_experience as Integer

''' <summary>
''' 
''' </summary>
<TagField("minimum player count", 1, 4)>
Public minimum_player_count as Integer

''' <summary>
''' 
''' </summary>
<TagField("maximum player count", 1, 4)>
Public maximum_player_count as Integer

''' <summary>
''' 
''' </summary>
<TagField("rating", 1, 4)>
Public rating as Integer

''' <summary>
''' 
''' </summary>
<TagField("", 64, -1)>
Public padding as Byte()

End Class

End Class
